package com.event.management.frontend.service;

import com.event.management.frontend.common.Result;
import com.event.management.frontend.dto.CategoryDTO;
import com.event.management.frontend.dto.EventDetailDTO;
import com.event.management.frontend.dto.EventListDTO;
import com.event.management.frontend.dto.EventQueryParam;
import com.event.management.frontend.dto.TicketTypeDTO;

import java.util.List;

/**
 * 活动服务接口
 */
public interface EventService {

    /**
     * 分页查询活动列表
     *
     * @param param 查询参数
     * @return 分页结果
     */
    Result.Page<EventListDTO> getEventList(EventQueryParam param);

    /**
     * 获取活动详情
     *
     * @param id 活动ID
     * @return 活动详情
     */
    EventDetailDTO getEventDetail(Long id);

    /**
     * 获取活动下的票种列表
     *
     * @param eventId 活动ID
     * @return 票种列表
     */
    List<TicketTypeDTO> getEventTickets(Long eventId);

    /**
     * 获取热门推荐活动
     *
     * @param limit 查询数量
     * @return 活动列表
     */
    List<EventListDTO> getRecommendEvents(Integer limit);

    /**
     * 获取分类和标签
     *
     * @return 分类列表
     */
    List<CategoryDTO> getCategories();
} 